/*
 * Atributos.java
 *
 * Created on 8 de marzo de 2008, 17:57
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package TablaDeSimbolos;

import java.util.Hashtable;

/**
 * 
 * @author Martín
 */
public class Atributos {

	/**
	 * A medida que se vayan conociendo posibles campos de la tabla de símbolos
	 * se puedes ir añadiendo aquí como constantes para poderlas consultar y que
	 * no haga falta saberselas de memoria
	 */
	public static final String LEXEMA = new String("LEXEMA");
	public static final String TIPO_TOKEN = new String("TIPO-TOKEN");
	public static final String TIPO = new String("TIPO");
	public static final String VALOR = new String("VALOR");
	public static final String POSICION = new String("POSICION");
	public static final boolean IDFUNCTION = new Boolean(false);
	public static final int SIZE = new Integer(0);
	public static final boolean IDTIPO = new Boolean(false);
	public static final String LEXEMA_TIPO_ASOCIADO = new String ("LEXEMA_TIPO_ASOCIADO");

	private Hashtable<String, Object> atributos; 

	/**
	 * Creates a new instance of Atributos
	 */
	public Atributos() {
		atributos = new Hashtable<String, Object>();
		insertar("IDFUNCTION", false);
		insertar("IDTIPO", false);
	}

	/**
	 * Inserta el un valor "valor" en el campo "nombreAtri"
	 */
	public void insertar(String nombreAtri, Object valor) {
		atributos.put(nombreAtri, valor);
	}

	/**
	 * Si se encuetra un campo llamado "nombreAtri" devuelve su valor, e.o.c
	 * devuelve null
	 */
	public Object esta(String nombreAtri) {
		Object retorno = atributos.get(nombreAtri);
		return retorno;
	}

	/**
	 * Devuelve en valor del campo "nombreAtri" en caso de que se encuentre, si
	 * no se encuentra devuelve null
	 */
	public Object obtener(String nombreAtri) {
		Object retorno = atributos.get(nombreAtri);
		return retorno;
	}

}
